Combining Inheritance and Parametric Polymorphism in a Functional Database Language

نویسندگان

  • Simon Courtenage
  • Alexandra Poulovassilis
چکیده

We consider extending a functional database language to support subtyping, inheritance and method overloading. We do so by extending previous work on type inference with subtypes for the pure calculus to cater for structured types, ML-style parametric polymorphism and overloaded function deenitions. We attach semantics to overloaded functions by developing a generalisation of best-t pattern-matching. Although developed for a speciic language, our approach is applicable to other functional database languages, for example languages with a functional data model.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Transfer Report Wildcards, Variance and Virtual Classes

Wildcards are used in Java to soften the mismatch between parametric polymorphism (generics) and subtype polymorphism (inheritance). Java with wildcards has not been proven type sound (unlike generics) and so may include security holes that could affect nearly every program written in Java in the last few years (since wildcards are used extensively throughout the Java libraries). The bulk of th...

متن کامل

Amber

Introduction The Amber language embeds many recent ideas in programming language design, and tries to introduce all the features in their minimal, essential, form. One of its main goals is to safely blend static typing with the dynamic requirements of a system programming language. For this purpose, multiple inheritance and persistent objects are integrated in a strongly typed language. Other f...

متن کامل

Module Constructs for Object-oriented and Functional Programming Languages Dissertation Proposal

Object-oriented languages ooer mechanisms to help structure large programs. However, the semantics of these constructs are often not very precisely deened. For example, the use of inheritance as a substitute for subtype polymorphism in many object-oriented languages either leads to an unsound or a too innexible type system. In addition, ideas from module constructs of functional languages could...

متن کامل

OOHaskell

Haskell provides type-class-bounded and parametric polymorphism as opposed to subtype polymorphism of object-oriented languages such as Java and OCaml. It is a contentious question whether Haskell 98 without extensions, or with common extensions, or with new extensions can fully support conventional object-oriented programming with encapsulation, mutable state, inheritance, overriding, statical...

متن کامل

Final Report for EPSRC Grant EP/E016146/1 Relational Parametricity for Computational Effects

Polymorphism is a feature of many programming languages, including typed functional languages (e.g., SML, Haskell), and recent “generic” versions of Java. Relational parametricity, introduced by Reynolds in 1983, is a powerful principle for reasoning about polymorphic programs and types. Previously, relational parametricity has been mainly studied for the second-order lambda calculus, a simple,...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1995